package com.android.infantschool.app;

import android.content.Context;
import android.support.multidex.MultiDexApplication;

import com.android.infantschool.util.CrashHandler;
import com.android.infantschool.util.SharedPreferencesUtil;
import com.tencent.bugly.Bugly;
import com.tencent.bugly.crashreport.CrashReport;

import org.xutils.x;

import cn.jpush.android.api.JPushInterface;
import cn.jpush.client.android.BuildConfig;

/**
 * @author Administrator
 * @particulars
 * @time 2019\7\18 0018 10:23
 * @class describe
 */
public class InfantApp extends MultiDexApplication {

    public static Context context = null;

    private volatile String appId = "0badfd0d33";
    private volatile String appKey = "c6eaa97d-b52d-41da-843e-77b3e87ad98c";
    private volatile String akQiNiu = "ZzzEQa5iqGks9IPjtHwUwgY1iFq7Xb7ukro-97kN";
    private volatile String skQiNiu = "ZId1AR6cu3pJIj8ESQJelYxDuQA50KF58TCDudQR";

    @Override
    public void onCreate() {
        super.onCreate();

        this.context = getContext();
        SharedPreferencesUtil.getInstance(this.getContext());

        /**
         * 单个异常上传统计时的初始化方法
         * @appContext 上下文
         * @crashReportAppId 注册时申请的APPID
         * @isDebug 自定义日志将会在Logcat中输出。
         */
        CrashReport.initCrashReport(getApplicationContext(), appId, false);

        /**
         * 统一初始化Bugly产品，包含Beta
         * @context 上下文
         * @appId 注册时申请的APPID
         * @isDebug 自定义日志将会在Logcat中输出。
         *
         * 提示：已经接入Bugly用户改用上面的初始化方法,不影响原有的crash上报功能; init方法会自动检测更新，不需要再手动调用Beta.checkUpgrade(), 如需增加自动检查时机可以使用Beta.checkUpgrade(false,false);
         * 参数1：isManual 用户手动点击检查，非用户点击操作请传false
         * 参数2：isSilence 是否显示弹窗等交互，[true:没有弹窗和toast] [false:有弹窗或toast]
         */
        Bugly.init(this, appId, true);

        /**
         * 初始化推送服务
         */
        JPushInterface.setDebugMode(BuildConfig.DEBUG);
        JPushInterface.init(this);

        /**
         * 初始化xUtils
         */
        x.Ext.init(this);
        x.Ext.setDebug(false);

        /**
         * 初始化异常捕捉管理类
         */
        CrashHandler.getInstance().init(getContext());
    }

    /**
     * 全局上下文
     *
     * @return
     */
    public Context getContext() {
        return this.getApplicationContext();
    }
}